package main

import (
	"fmt"
	"net"
	"net/rpc"
	"net/rpc/jsonrpc"
)

func main() {
	// // 建立连接
	// client, err := rpc.Dial("tcp", "localhost:8080")
	// if err != nil {
	// 	fmt.Println("连接失败")
	// 	return
	// }

	// // 直接定义指针变量时，注意利用new方法 预先分配地址，避免传递空指针报错
	// var resp *string = new(string)
	// // var resp string
	// err = client.Call("HelloService.Hello", "wukun", resp)
	// // err = client.Call("HelloService.Hello", "wukun", &resp)
	// if err != nil {
	// 	fmt.Println("调用HelloService.Hello出错")
	// 	return
	// }

	// fmt.Println(*resp)
	// // fmt.Println(resp)

	// 建立连接
	conn, err := net.Dial("tcp", "localhost:8080")
	if err != nil {
		fmt.Println("连接失败")
		return
	}

	var resp string
	// 请求以json格式编码
	client := rpc.NewClientWithCodec(jsonrpc.NewClientCodec(conn))
	err = client.Call("HelloService.Hello", "wukun", &resp)
	if err != nil {
		fmt.Println("调用HelloService.Hello出错")
		return
	}

	fmt.Println(resp)
}
